import { request } from '@/utils/request.js'

// 创建订单
export function createOrder(data) {
	return request({
		url: '/api/order/create',
		method: 'POST',
		data
	})
}

// 获取订单详情
export function getOrderDetail(id) {
	return request({
		url: `/api/order/${id}`,
		method: 'GET'
	})
}

// 根据订单号获取订单
export function getOrderByNumber(orderNumber) {
	return request({
		url: `/api/order/number/${orderNumber}`,
		method: 'GET'
	})
}

// 获取订单列表
export function getOrderList(data) {
	return request({
		url: '/api/order/list',
		method: 'POST',
		data
	})
}

// 获取买家订单列表
export function getBuyerOrders(status) {
	return request({
		url: '/api/order/buyer',
		method: 'GET',
		params: { status }
	})
}

// 获取卖家订单列表
export function getSellerOrders(status) {
	return request({
		url: '/api/order/seller',
		method: 'GET',
		params: { status }
	})
}

// 支付订单
export function payOrder(id, data) {
	return request({
		url: `/api/order/${id}/pay`,
		method: 'PUT',
		data
	})
}

// 发货
export function shipOrder(id, data) {
	return request({
		url: `/api/order/${id}/ship`,
		method: 'PUT',
		data
	})
}

// 卖家确认订单
export function sellerConfirmOrder(id, data) {
	return request({
		url: `/api/order/${id}/seller-confirm`,
		method: 'PUT',
		data
	})
}

// 买家确认收货
export function confirmReceipt(id) {
	return request({
		url: `/api/order/${id}/confirm`,
		method: 'PUT'
	})
}

// 取消订单
export function cancelOrder(id, data) {
	return request({
		url: `/api/order/${id}/cancel`,
		method: 'PUT',
		data
	})
}

// 获取物流信息
export function getTrackingInfo(id) {
	return request({
		url: `/api/order/${id}/tracking`,
		method: 'GET'
	})
}

// 获取订单统计
export function getOrderStatistics() {
	return request({
		url: '/api/order/statistics',
		method: 'GET'
	})
}

// 订单状态枚举（简化版本）
export const ORDER_STATUS = {
	PENDING_SELLER_CONFIRM: 1, // 待卖家确认
	PENDING_DELIVERY: 2, // 待收货
	COMPLETED: 3, // 已完成
	CANCELLED: 4 // 已取消
}

// 订单状态文本映射
export const ORDER_STATUS_TEXT = {
	[ORDER_STATUS.PENDING_SELLER_CONFIRM]: '待卖家确认',
	[ORDER_STATUS.PENDING_DELIVERY]: '待收货',
	[ORDER_STATUS.COMPLETED]: '已完成',
	[ORDER_STATUS.CANCELLED]: '已取消'
}

// 支付状态枚举
export const PAYMENT_STATUS = {
	UNPAID: 1, // 未支付
	PAYING: 2, // 支付中
	PAID: 3, // 已支付
	FAILED: 4, // 支付失败
	REFUNDED: 5 // 已退款
}

// 交易方式枚举
export const DELIVERY_METHOD = {
	FACE_TO_FACE: 1, // 面交
	MAIL: 2 // 邮寄
}

// 交易方式文本映射
export const DELIVERY_METHOD_TEXT = {
	[DELIVERY_METHOD.FACE_TO_FACE]: '面交',
	[DELIVERY_METHOD.MAIL]: '邮寄'
}